<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>segment_object_model_3d [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_3dobjectmodel.html">3D Object Model</a> / <a href="toc_3dobjectmodel_segmentation.html">分割</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">segment_object_model_3d</span><span data-if="c" style="display:none;">T_segment_object_model_3d</span><span data-if="cpp" style="display:none;">SegmentObjectModel3d</span><span data-if="dotnet" style="display:none;">SegmentObjectModel3d</span><span data-if="python" style="display:none;">segment_object_model_3d</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">segment_object_model_3d</span><span data-if="c" style="display:none;">T_segment_object_model_3d</span><span data-if="cpp" style="display:none;">SegmentObjectModel3d</span><span data-if="dotnet" style="display:none;">SegmentObjectModel3d</span><span data-if="python" style="display:none;">segment_object_model_3d</span></code> — Segment a set of 3D points into sub-sets with similar characteristics.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>segment_object_model_3d</b>( :  : <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, <a href="#GenParamName"><i>GenParamName</i></a>, <a href="#GenParamValue"><i>GenParamValue</i></a> : <a href="#ObjectModel3DOut"><i>ObjectModel3DOut</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_segment_object_model_3d</b>(const Htuple <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const Htuple <a href="#GenParamName"><i>GenParamName</i></a>, const Htuple <a href="#GenParamValue"><i>GenParamValue</i></a>, Htuple* <a href="#ObjectModel3DOut"><i>ObjectModel3DOut</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>SegmentObjectModel3d</b>(const HTuple&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#ObjectModel3DOut"><i>ObjectModel3DOut</i></a>)</code></p>
<p>
<code>static HObjectModel3DArray <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>SegmentObjectModel3d</b>(const HObjectModel3DArray&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code><a href="HObjectModel3D.html">HObjectModel3D</a> <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>SegmentObjectModel3d</b>(const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>SegmentObjectModel3d</b>(<a href="HTuple.html">HTuple</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ObjectModel3DOut"><i>objectModel3DOut</i></a>)</code></p>
<p>
<code>static <a href="HObjectModel3D.html">HObjectModel3D[]</a> <a href="HObjectModel3D.html">HObjectModel3D</a>.<b>SegmentObjectModel3d</b>(<a href="HObjectModel3D.html">HObjectModel3D[]</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code><a href="HObjectModel3D.html">HObjectModel3D</a> <a href="HObjectModel3D.html">HObjectModel3D</a>.<b>SegmentObjectModel3d</b>(<a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>segment_object_model_3d</b>(<a href="#ObjectModel3D"><i>object_model_3d</i></a>: MaybeSequence[HHandle], <a href="#GenParamName"><i>gen_param_name</i></a>: Sequence[str], <a href="#GenParamValue"><i>gen_param_value</i></a>: Sequence[Union[str, float, int]]) -&gt; Sequence[HHandle]</code></p>
<p>
<code>def <b>segment_object_model_3d_s</b>(<a href="#ObjectModel3D"><i>object_model_3d</i></a>: MaybeSequence[HHandle], <a href="#GenParamName"><i>gen_param_name</i></a>: Sequence[str], <a href="#GenParamValue"><i>gen_param_value</i></a>: Sequence[Union[str, float, int]]) -&gt; HHandle</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">segment_object_model_3d</span><span data-if="c" style="display:none">segment_object_model_3d</span><span data-if="cpp" style="display:none">SegmentObjectModel3d</span><span data-if="com" style="display:none">SegmentObjectModel3d</span><span data-if="dotnet" style="display:none">SegmentObjectModel3d</span><span data-if="python" style="display:none">segment_object_model_3d</span></code> segments a set of 3D points
given by a 3D object model with the handle <a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a> into
several sub-sets of neighbored 3D points with similar characteristics like
the same normal orientation or curvature.  By default, 该算子 then
tries to fit a 3D primitive, i.e., a simple 3D shape like a plane,
a sphere, or a cylinder, into each of these sub-sets. As result, the
operator returns a tuple of handles for the 3D object models that
represent the individual sub-sets of 3D points
(<a href="#ObjectModel3DOut"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3DOut</span><span data-if="c" style="display:none">ObjectModel3DOut</span><span data-if="cpp" style="display:none">ObjectModel3DOut</span><span data-if="com" style="display:none">ObjectModel3DOut</span><span data-if="dotnet" style="display:none">objectModel3DOut</span><span data-if="python" style="display:none">object_model_3dout</span></code></i></a>). Within these 3D object models information
is stored that concern, e.g., the success of the fitting and the type
and parameters of the fitted 3D primitive. This information can be queried
from the individual 3D object model with <a href="get_object_model_3d_params.html"><code><span data-if="hdevelop" style="display:inline">get_object_model_3d_params</span><span data-if="c" style="display:none">get_object_model_3d_params</span><span data-if="cpp" style="display:none">GetObjectModel3dParams</span><span data-if="com" style="display:none">GetObjectModel3dParams</span><span data-if="dotnet" style="display:none">GetObjectModel3dParams</span><span data-if="python" style="display:none">get_object_model_3d_params</span></code></a>.
</p>
<p>Before calling <code><span data-if="hdevelop" style="display:inline">segment_object_model_3d</span><span data-if="c" style="display:none">segment_object_model_3d</span><span data-if="cpp" style="display:none">SegmentObjectModel3d</span><span data-if="com" style="display:none">SegmentObjectModel3d</span><span data-if="dotnet" style="display:none">SegmentObjectModel3d</span><span data-if="python" style="display:none">segment_object_model_3d</span></code>, the input 3D object model
should be prepared for the segmentation using 该算子
<a href="prepare_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">prepare_object_model_3d</span><span data-if="c" style="display:none">prepare_object_model_3d</span><span data-if="cpp" style="display:none">PrepareObjectModel3d</span><span data-if="com" style="display:none">PrepareObjectModel3d</span><span data-if="dotnet" style="display:none">PrepareObjectModel3d</span><span data-if="python" style="display:none">prepare_object_model_3d</span></code></a> with the parameter <code><span data-if="hdevelop" style="display:inline">Purpose</span><span data-if="c" style="display:none">Purpose</span><span data-if="cpp" style="display:none">Purpose</span><span data-if="com" style="display:none">Purpose</span><span data-if="dotnet" style="display:none">purpose</span><span data-if="python" style="display:none">purpose</span></code> set
to <i><span data-if="hdevelop" style="display:inline">'segmentation'</span><span data-if="c" style="display:none">"segmentation"</span><span data-if="cpp" style="display:none">"segmentation"</span><span data-if="com" style="display:none">"segmentation"</span><span data-if="dotnet" style="display:none">"segmentation"</span><span data-if="python" style="display:none">"segmentation"</span></i>. If the input 3D object model is not
prepared this way, 该算子 <a href="prepare_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">prepare_object_model_3d</span><span data-if="c" style="display:none">prepare_object_model_3d</span><span data-if="cpp" style="display:none">PrepareObjectModel3d</span><span data-if="com" style="display:none">PrepareObjectModel3d</span><span data-if="dotnet" style="display:none">PrepareObjectModel3d</span><span data-if="python" style="display:none">prepare_object_model_3d</span></code></a> is called
internally within <code><span data-if="hdevelop" style="display:inline">segment_object_model_3d</span><span data-if="c" style="display:none">segment_object_model_3d</span><span data-if="cpp" style="display:none">SegmentObjectModel3d</span><span data-if="com" style="display:none">SegmentObjectModel3d</span><span data-if="dotnet" style="display:none">SegmentObjectModel3d</span><span data-if="python" style="display:none">segment_object_model_3d</span></code> to extend the
3D object model with attributes that were not explicitly but only implicitly
contained in the 3D object model.
</p>
<p>To control the segmentation and the fitting, you can adjust some
generic parameters within <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> and <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a>.
But note that for a lot of applications the default
values are sufficient and no adjustment is necessary.
The following values for <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> and <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a>
are possible:
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'max_orientation_diff'</span><span data-if="c" style="display:none">"max_orientation_diff"</span><span data-if="cpp" style="display:none">"max_orientation_diff"</span><span data-if="com" style="display:none">"max_orientation_diff"</span><span data-if="dotnet" style="display:none">"max_orientation_diff"</span><span data-if="python" style="display:none">"max_orientation_diff"</span></i>:</b></dt>
<dd>
<p>
  The parameter specifies
the maximum angle between the point normals of two neighbored 3D points
(in radians) that is allowed so that the two points belong to the
same sub-set of 3D points.  For a cylinder or sphere, the parameter
value depends on the dimension of the object and on the distance of
the neighbored 3D points.  I.e., if the cylinder or sphere has a
very small radius or if the 3D points are not very dense, the value
must be chosen higher.  For a plane the value is independent from
the dimension of the object and can be set to a small value.</p>
<p>
<i>Suggested values:</i> <i>0.10</i>, <i>0.15</i>,
<i>0.20</i> </p>
<p>
<i>Default value:</i> <i>0.15</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'max_curvature_diff'</span><span data-if="c" style="display:none">"max_curvature_diff"</span><span data-if="cpp" style="display:none">"max_curvature_diff"</span><span data-if="com" style="display:none">"max_curvature_diff"</span><span data-if="dotnet" style="display:none">"max_curvature_diff"</span><span data-if="python" style="display:none">"max_curvature_diff"</span></i>:</b></dt>
<dd>
<p>
  The parameter specifies the
maximum difference between the curvatures of the surface at the
positions of two neighbored 3D points that is allowed so that
the two points belong to the same sub-set of 3D points.
The value depends on the noise of the 3D points.  I.e.,
if the noise level of the 3D points is very high, the value must
be set to a higher value.  Generally, the number of
resulting 3D object models decreases for a higher value, because
more 3D points are merged to a sub-set of 3D points.</p>
<p>
<i>Suggested values:</i> <i>0.03</i>, <i>0.04</i>,
<i>0.05</i> </p>
<p>
<i>Default value:</i> <i>0.05</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'min_area'</span><span data-if="c" style="display:none">"min_area"</span><span data-if="cpp" style="display:none">"min_area"</span><span data-if="com" style="display:none">"min_area"</span><span data-if="dotnet" style="display:none">"min_area"</span><span data-if="python" style="display:none">"min_area"</span></i>:</b></dt>
<dd>
<p>
 The parameter specifies the minimum
number of 3D points needed for a sub-set of connected 3D points
to be returned by the segmentation. Thus, for a sub-set with
fewer points the points are deleted and no output handle is created.</p>
<p>
<i>Suggested values:</i> <i>1</i>, <i>10</i>, <i>100</i> </p>
<p>
<i>Default value:</i> <i>100</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'fitting'</span><span data-if="c" style="display:none">"fitting"</span><span data-if="cpp" style="display:none">"fitting"</span><span data-if="com" style="display:none">"fitting"</span><span data-if="dotnet" style="display:none">"fitting"</span><span data-if="python" style="display:none">"fitting"</span></i>:</b></dt>
<dd>
<p>
 The parameter specifies whether after the
segmentation 3D primitives are fitted into the sub-sets of 3D
points.  If <i><span data-if="hdevelop" style="display:inline">'fitting'</span><span data-if="c" style="display:none">"fitting"</span><span data-if="cpp" style="display:none">"fitting"</span><span data-if="com" style="display:none">"fitting"</span><span data-if="dotnet" style="display:none">"fitting"</span><span data-if="python" style="display:none">"fitting"</span></i> is set
to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, which is the default, the fitting is calculated
and the 3D object models with the resulting handles contain the
parameters of the corresponding 3D primitives. The output parameters
of a cylinder, a sphere, or a plane are described with 该算子
<a href="fit_primitives_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">fit_primitives_object_model_3d</span><span data-if="c" style="display:none">fit_primitives_object_model_3d</span><span data-if="cpp" style="display:none">FitPrimitivesObjectModel3d</span><span data-if="com" style="display:none">FitPrimitivesObjectModel3d</span><span data-if="dotnet" style="display:none">FitPrimitivesObjectModel3d</span><span data-if="python" style="display:none">fit_primitives_object_model_3d</span></code></a>.  If <i><span data-if="hdevelop" style="display:inline">'fitting'</span><span data-if="c" style="display:none">"fitting"</span><span data-if="cpp" style="display:none">"fitting"</span><span data-if="com" style="display:none">"fitting"</span><span data-if="dotnet" style="display:none">"fitting"</span><span data-if="python" style="display:none">"fitting"</span></i>
is set to <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, only a segmentation is performed and
the output 3D object models contain the segmented sub-sets of 3D points.
A later fitting can be performed with 该算子
<a href="fit_primitives_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">fit_primitives_object_model_3d</span><span data-if="c" style="display:none">fit_primitives_object_model_3d</span><span data-if="cpp" style="display:none">FitPrimitivesObjectModel3d</span><span data-if="com" style="display:none">FitPrimitivesObjectModel3d</span><span data-if="dotnet" style="display:none">FitPrimitivesObjectModel3d</span><span data-if="python" style="display:none">fit_primitives_object_model_3d</span></code></a>. </p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i> </p>
<p>
<i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'output_xyz_mapping'</span><span data-if="c" style="display:none">"output_xyz_mapping"</span><span data-if="cpp" style="display:none">"output_xyz_mapping"</span><span data-if="com" style="display:none">"output_xyz_mapping"</span><span data-if="dotnet" style="display:none">"output_xyz_mapping"</span><span data-if="python" style="display:none">"output_xyz_mapping"</span></i>:</b></dt>
<dd>
<p>
  The parameter determines
if a mapping from the segmented 3D points to image coordinates
is copied to the output 3D object model.  This information is
needed, e.g., when using 该算子 <a href="object_model_3d_to_xyz.html"><code><span data-if="hdevelop" style="display:inline">object_model_3d_to_xyz</span><span data-if="c" style="display:none">object_model_3d_to_xyz</span><span data-if="cpp" style="display:none">ObjectModel3dToXyz</span><span data-if="com" style="display:none">ObjectModel3dToXyz</span><span data-if="dotnet" style="display:none">ObjectModel3dToXyz</span><span data-if="python" style="display:none">object_model_3d_to_xyz</span></code></a>
after the segmentation (e.g., for a visualization).  If
<i><span data-if="hdevelop" style="display:inline">'output_xyz_mapping'</span><span data-if="c" style="display:none">"output_xyz_mapping"</span><span data-if="cpp" style="display:none">"output_xyz_mapping"</span><span data-if="com" style="display:none">"output_xyz_mapping"</span><span data-if="dotnet" style="display:none">"output_xyz_mapping"</span><span data-if="python" style="display:none">"output_xyz_mapping"</span></i> is  set to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>,
the image coordinate mapping is copied.  Note that the parameter is
only valid, if the image coordinate mapping is available in the input
3D object model. Make sure that, if you derive the input 3D object
model by copying it with 该算子 <a href="copy_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">copy_object_model_3d</span><span data-if="c" style="display:none">copy_object_model_3d</span><span data-if="cpp" style="display:none">CopyObjectModel3d</span><span data-if="com" style="display:none">CopyObjectModel3d</span><span data-if="dotnet" style="display:none">CopyObjectModel3d</span><span data-if="python" style="display:none">copy_object_model_3d</span></code></a>
from a 3D object model that contains such a mapping, the mapping is
copied, too. Furthermore, the parameter is only valid, if
the 3D points are copied to the output 3D object model, which is set
with the parameter <i><span data-if="hdevelop" style="display:inline">'output_point_coord'</span><span data-if="c" style="display:none">"output_point_coord"</span><span data-if="cpp" style="display:none">"output_point_coord"</span><span data-if="com" style="display:none">"output_point_coord"</span><span data-if="dotnet" style="display:none">"output_point_coord"</span><span data-if="python" style="display:none">"output_point_coord"</span></i>.
If <i><span data-if="hdevelop" style="display:inline">'output_xyz_mapping'</span><span data-if="c" style="display:none">"output_xyz_mapping"</span><span data-if="cpp" style="display:none">"output_xyz_mapping"</span><span data-if="com" style="display:none">"output_xyz_mapping"</span><span data-if="dotnet" style="display:none">"output_xyz_mapping"</span><span data-if="python" style="display:none">"output_xyz_mapping"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>,
the image coordinate mapping is not copied. </p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>,<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i></p>
<p>
<i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'primitive_type'</span><span data-if="c" style="display:none">"primitive_type"</span><span data-if="cpp" style="display:none">"primitive_type"</span><span data-if="com" style="display:none">"primitive_type"</span><span data-if="dotnet" style="display:none">"primitive_type"</span><span data-if="python" style="display:none">"primitive_type"</span></i>, <i><span data-if="hdevelop" style="display:inline">'fitting_algorithm'</span><span data-if="c" style="display:none">"fitting_algorithm"</span><span data-if="cpp" style="display:none">"fitting_algorithm"</span><span data-if="com" style="display:none">"fitting_algorithm"</span><span data-if="dotnet" style="display:none">"fitting_algorithm"</span><span data-if="python" style="display:none">"fitting_algorithm"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'min_radius'</span><span data-if="c" style="display:none">"min_radius"</span><span data-if="cpp" style="display:none">"min_radius"</span><span data-if="com" style="display:none">"min_radius"</span><span data-if="dotnet" style="display:none">"min_radius"</span><span data-if="python" style="display:none">"min_radius"</span></i>, <i><span data-if="hdevelop" style="display:inline">'max_radius'</span><span data-if="c" style="display:none">"max_radius"</span><span data-if="cpp" style="display:none">"max_radius"</span><span data-if="com" style="display:none">"max_radius"</span><span data-if="dotnet" style="display:none">"max_radius"</span><span data-if="python" style="display:none">"max_radius"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'output_point_coord'</span><span data-if="c" style="display:none">"output_point_coord"</span><span data-if="cpp" style="display:none">"output_point_coord"</span><span data-if="com" style="display:none">"output_point_coord"</span><span data-if="dotnet" style="display:none">"output_point_coord"</span><span data-if="python" style="display:none">"output_point_coord"</span></i>:</b></dt>
<dd>
<p>

These parameters are used, if <i><span data-if="hdevelop" style="display:inline">'fitting'</span><span data-if="c" style="display:none">"fitting"</span><span data-if="cpp" style="display:none">"fitting"</span><span data-if="com" style="display:none">"fitting"</span><span data-if="dotnet" style="display:none">"fitting"</span><span data-if="python" style="display:none">"fitting"</span></i> is set
to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, which is the default.
The meaning and the use of these parameters
is described with 该算子 <a href="fit_primitives_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">fit_primitives_object_model_3d</span><span data-if="c" style="display:none">fit_primitives_object_model_3d</span><span data-if="cpp" style="display:none">FitPrimitivesObjectModel3d</span><span data-if="com" style="display:none">FitPrimitivesObjectModel3d</span><span data-if="dotnet" style="display:none">FitPrimitivesObjectModel3d</span><span data-if="python" style="display:none">fit_primitives_object_model_3d</span></code></a>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'surface_check'</span><span data-if="c" style="display:none">"surface_check"</span><span data-if="cpp" style="display:none">"surface_check"</span><span data-if="com" style="display:none">"surface_check"</span><span data-if="dotnet" style="display:none">"surface_check"</span><span data-if="python" style="display:none">"surface_check"</span></i>:</b></dt>
<dd>
<p>
 The parameter determines whether the
surface of a triangulated input object model is checked regarding
its conformity to the expected requirements.
If the input 3D object model contains triangles that are topologically
invalid an error message is raised.
If the triangulation was created (<a href="triangulate_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">triangulate_object_model_3d</span><span data-if="c" style="display:none">triangulate_object_model_3d</span><span data-if="cpp" style="display:none">TriangulateObjectModel3d</span><span data-if="com" style="display:none">TriangulateObjectModel3d</span><span data-if="dotnet" style="display:none">TriangulateObjectModel3d</span><span data-if="python" style="display:none">triangulate_object_model_3d</span></code></a>)
or edited (e.g., by <a href="simplify_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">simplify_object_model_3d</span><span data-if="c" style="display:none">simplify_object_model_3d</span><span data-if="cpp" style="display:none">SimplifyObjectModel3d</span><span data-if="com" style="display:none">SimplifyObjectModel3d</span><span data-if="dotnet" style="display:none">SimplifyObjectModel3d</span><span data-if="python" style="display:none">simplify_object_model_3d</span></code></a>) by a HALCON
operator, a surface check should not be necessary.
The check can be disabled in order to enhance the runtime by setting
<i><span data-if="hdevelop" style="display:inline">'surface_check'</span><span data-if="c" style="display:none">"surface_check"</span><span data-if="cpp" style="display:none">"surface_check"</span><span data-if="com" style="display:none">"surface_check"</span><span data-if="dotnet" style="display:none">"surface_check"</span><span data-if="python" style="display:none">"surface_check"</span></i> to <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>. </p>
<p>
<i>List of values:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>,<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i></p>
<p>
<i>Default value:</i> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>
</p>
</dd>
</dl>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="ObjectModel3D" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></b> (input_control)  </span><span>object_model_3d(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HObjectModel3D.html">HObjectModel3D</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[HHandle]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the input 3D object model.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></b> (input_control)  </span><span>attribute.name-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Names of the generic parameters.</p>
<p class="pardesc"><span class="parcat">Number of elements:
      </span>GenParamName == GenParamValue</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'fitting_algorithm'</span><span data-if="c" style="display:none">"fitting_algorithm"</span><span data-if="cpp" style="display:none">"fitting_algorithm"</span><span data-if="com" style="display:none">"fitting_algorithm"</span><span data-if="dotnet" style="display:none">"fitting_algorithm"</span><span data-if="python" style="display:none">"fitting_algorithm"</span>, <span data-if="hdevelop" style="display:inline">'max_curvature_diff'</span><span data-if="c" style="display:none">"max_curvature_diff"</span><span data-if="cpp" style="display:none">"max_curvature_diff"</span><span data-if="com" style="display:none">"max_curvature_diff"</span><span data-if="dotnet" style="display:none">"max_curvature_diff"</span><span data-if="python" style="display:none">"max_curvature_diff"</span>, <span data-if="hdevelop" style="display:inline">'max_orientation_diff'</span><span data-if="c" style="display:none">"max_orientation_diff"</span><span data-if="cpp" style="display:none">"max_orientation_diff"</span><span data-if="com" style="display:none">"max_orientation_diff"</span><span data-if="dotnet" style="display:none">"max_orientation_diff"</span><span data-if="python" style="display:none">"max_orientation_diff"</span>, <span data-if="hdevelop" style="display:inline">'max_radius'</span><span data-if="c" style="display:none">"max_radius"</span><span data-if="cpp" style="display:none">"max_radius"</span><span data-if="com" style="display:none">"max_radius"</span><span data-if="dotnet" style="display:none">"max_radius"</span><span data-if="python" style="display:none">"max_radius"</span>, <span data-if="hdevelop" style="display:inline">'min_area'</span><span data-if="c" style="display:none">"min_area"</span><span data-if="cpp" style="display:none">"min_area"</span><span data-if="com" style="display:none">"min_area"</span><span data-if="dotnet" style="display:none">"min_area"</span><span data-if="python" style="display:none">"min_area"</span>, <span data-if="hdevelop" style="display:inline">'min_radius'</span><span data-if="c" style="display:none">"min_radius"</span><span data-if="cpp" style="display:none">"min_radius"</span><span data-if="com" style="display:none">"min_radius"</span><span data-if="dotnet" style="display:none">"min_radius"</span><span data-if="python" style="display:none">"min_radius"</span>, <span data-if="hdevelop" style="display:inline">'output_point_coord'</span><span data-if="c" style="display:none">"output_point_coord"</span><span data-if="cpp" style="display:none">"output_point_coord"</span><span data-if="com" style="display:none">"output_point_coord"</span><span data-if="dotnet" style="display:none">"output_point_coord"</span><span data-if="python" style="display:none">"output_point_coord"</span>, <span data-if="hdevelop" style="display:inline">'output_xyz_mapping'</span><span data-if="c" style="display:none">"output_xyz_mapping"</span><span data-if="cpp" style="display:none">"output_xyz_mapping"</span><span data-if="com" style="display:none">"output_xyz_mapping"</span><span data-if="dotnet" style="display:none">"output_xyz_mapping"</span><span data-if="python" style="display:none">"output_xyz_mapping"</span>, <span data-if="hdevelop" style="display:inline">'primitive_type'</span><span data-if="c" style="display:none">"primitive_type"</span><span data-if="cpp" style="display:none">"primitive_type"</span><span data-if="com" style="display:none">"primitive_type"</span><span data-if="dotnet" style="display:none">"primitive_type"</span><span data-if="python" style="display:none">"primitive_type"</span>, <span data-if="hdevelop" style="display:inline">'surface_check'</span><span data-if="c" style="display:none">"surface_check"</span><span data-if="cpp" style="display:none">"surface_check"</span><span data-if="com" style="display:none">"surface_check"</span><span data-if="dotnet" style="display:none">"surface_check"</span><span data-if="python" style="display:none">"surface_check"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamValue" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></b> (input_control)  </span><span>attribute.name-array <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[str, float, int]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string / </span><span data-if="hdevelop" style="display:inline">real / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>string</i> / </span><span data-if="dotnet" style="display:none">double / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>HString</i> / </span><span data-if="cpp" style="display:none">double / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>char*</i> / </span><span data-if="c" style="display:none">double / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Values of the generic parameters.</p>
<p class="pardesc"><span class="parcat">Number of elements:
      </span>GenParamValue == GenParamName</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.15, 0.05, 100, <span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span>, <span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span>, <span data-if="hdevelop" style="display:inline">'cylinder'</span><span data-if="c" style="display:none">"cylinder"</span><span data-if="cpp" style="display:none">"cylinder"</span><span data-if="com" style="display:none">"cylinder"</span><span data-if="dotnet" style="display:none">"cylinder"</span><span data-if="python" style="display:none">"cylinder"</span>, <span data-if="hdevelop" style="display:inline">'sphere'</span><span data-if="c" style="display:none">"sphere"</span><span data-if="cpp" style="display:none">"sphere"</span><span data-if="com" style="display:none">"sphere"</span><span data-if="dotnet" style="display:none">"sphere"</span><span data-if="python" style="display:none">"sphere"</span>, <span data-if="hdevelop" style="display:inline">'plane'</span><span data-if="c" style="display:none">"plane"</span><span data-if="cpp" style="display:none">"plane"</span><span data-if="com" style="display:none">"plane"</span><span data-if="dotnet" style="display:none">"plane"</span><span data-if="python" style="display:none">"plane"</span>, <span data-if="hdevelop" style="display:inline">'all'</span><span data-if="c" style="display:none">"all"</span><span data-if="cpp" style="display:none">"all"</span><span data-if="com" style="display:none">"all"</span><span data-if="dotnet" style="display:none">"all"</span><span data-if="python" style="display:none">"all"</span>, <span data-if="hdevelop" style="display:inline">'least_squares'</span><span data-if="c" style="display:none">"least_squares"</span><span data-if="cpp" style="display:none">"least_squares"</span><span data-if="com" style="display:none">"least_squares"</span><span data-if="dotnet" style="display:none">"least_squares"</span><span data-if="python" style="display:none">"least_squares"</span>, <span data-if="hdevelop" style="display:inline">'least_squares_huber'</span><span data-if="c" style="display:none">"least_squares_huber"</span><span data-if="cpp" style="display:none">"least_squares_huber"</span><span data-if="com" style="display:none">"least_squares_huber"</span><span data-if="dotnet" style="display:none">"least_squares_huber"</span><span data-if="python" style="display:none">"least_squares_huber"</span>, <span data-if="hdevelop" style="display:inline">'least_squares_tukey'</span><span data-if="c" style="display:none">"least_squares_tukey"</span><span data-if="cpp" style="display:none">"least_squares_tukey"</span><span data-if="com" style="display:none">"least_squares_tukey"</span><span data-if="dotnet" style="display:none">"least_squares_tukey"</span><span data-if="python" style="display:none">"least_squares_tukey"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="ObjectModel3DOut" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ObjectModel3DOut</span><span data-if="c" style="display:none">ObjectModel3DOut</span><span data-if="cpp" style="display:none">ObjectModel3DOut</span><span data-if="com" style="display:none">ObjectModel3DOut</span><span data-if="dotnet" style="display:none">objectModel3DOut</span><span data-if="python" style="display:none">object_model_3dout</span></code></b> (output_control)  </span><span>object_model_3d(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HObjectModel3D.html">HObjectModel3D</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[HHandle]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the output 3D object model.</p>
</div>
<h2 id="sec_result">结果</h2>
<p><code><span data-if="hdevelop" style="display:inline">segment_object_model_3d</span><span data-if="c" style="display:none">segment_object_model_3d</span><span data-if="cpp" style="display:none">SegmentObjectModel3d</span><span data-if="com" style="display:none">SegmentObjectModel3d</span><span data-if="dotnet" style="display:none">SegmentObjectModel3d</span><span data-if="python" style="display:none">segment_object_model_3d</span></code> returns <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
     if all parameter values
are correct.  如有必要，将引发异常。</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="xyz_to_object_model_3d.html"><span data-if="hdevelop" style="display:inline">xyz_to_object_model_3d</span><span data-if="c" style="display:none">xyz_to_object_model_3d</span><span data-if="cpp" style="display:none">XyzToObjectModel3d</span><span data-if="com" style="display:none">XyzToObjectModel3d</span><span data-if="dotnet" style="display:none">XyzToObjectModel3d</span><span data-if="python" style="display:none">xyz_to_object_model_3d</span></a></code>, 
<code><a href="read_object_model_3d.html"><span data-if="hdevelop" style="display:inline">read_object_model_3d</span><span data-if="c" style="display:none">read_object_model_3d</span><span data-if="cpp" style="display:none">ReadObjectModel3d</span><span data-if="com" style="display:none">ReadObjectModel3d</span><span data-if="dotnet" style="display:none">ReadObjectModel3d</span><span data-if="python" style="display:none">read_object_model_3d</span></a></code>, 
<code><a href="prepare_object_model_3d.html"><span data-if="hdevelop" style="display:inline">prepare_object_model_3d</span><span data-if="c" style="display:none">prepare_object_model_3d</span><span data-if="cpp" style="display:none">PrepareObjectModel3d</span><span data-if="com" style="display:none">PrepareObjectModel3d</span><span data-if="dotnet" style="display:none">PrepareObjectModel3d</span><span data-if="python" style="display:none">prepare_object_model_3d</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="get_object_model_3d_params.html"><span data-if="hdevelop" style="display:inline">get_object_model_3d_params</span><span data-if="c" style="display:none">get_object_model_3d_params</span><span data-if="cpp" style="display:none">GetObjectModel3dParams</span><span data-if="com" style="display:none">GetObjectModel3dParams</span><span data-if="dotnet" style="display:none">GetObjectModel3dParams</span><span data-if="python" style="display:none">get_object_model_3d_params</span></a></code>, 
<code><a href="object_model_3d_to_xyz.html"><span data-if="hdevelop" style="display:inline">object_model_3d_to_xyz</span><span data-if="c" style="display:none">object_model_3d_to_xyz</span><span data-if="cpp" style="display:none">ObjectModel3dToXyz</span><span data-if="com" style="display:none">ObjectModel3dToXyz</span><span data-if="dotnet" style="display:none">ObjectModel3dToXyz</span><span data-if="python" style="display:none">object_model_3d_to_xyz</span></a></code>, 
<code><a href="write_object_model_3d.html"><span data-if="hdevelop" style="display:inline">write_object_model_3d</span><span data-if="c" style="display:none">write_object_model_3d</span><span data-if="cpp" style="display:none">WriteObjectModel3d</span><span data-if="com" style="display:none">WriteObjectModel3d</span><span data-if="dotnet" style="display:none">WriteObjectModel3d</span><span data-if="python" style="display:none">write_object_model_3d</span></a></code>, 
<code><a href="clear_object_model_3d.html"><span data-if="hdevelop" style="display:inline">clear_object_model_3d</span><span data-if="c" style="display:none">clear_object_model_3d</span><span data-if="cpp" style="display:none">ClearObjectModel3d</span><span data-if="com" style="display:none">ClearObjectModel3d</span><span data-if="dotnet" style="display:none">ClearObjectModel3d</span><span data-if="python" style="display:none">clear_object_model_3d</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="fit_primitives_object_model_3d.html"><span data-if="hdevelop" style="display:inline">fit_primitives_object_model_3d</span><span data-if="c" style="display:none">fit_primitives_object_model_3d</span><span data-if="cpp" style="display:none">FitPrimitivesObjectModel3d</span><span data-if="com" style="display:none">FitPrimitivesObjectModel3d</span><span data-if="dotnet" style="display:none">FitPrimitivesObjectModel3d</span><span data-if="python" style="display:none">fit_primitives_object_model_3d</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
3D Metrology</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
